package com.solution.admin.order.constants;

import java.math.BigDecimal;

/**
 * 订单模块常量
 * @author llp
 */
public class OrderConstants {
	
	
	/**
	 *  订单订单类型状态
	 */
	public enum ORDER_PAY_TYPE {
		ALIPAY("01", "支付宝"), 
		WXPAY("02", "微信支付"), 
		PUBLIC_BANK_PAY("03", "对公银行转账"), 
		PRIVATE_BANK_PAY("04", "对私银行转账");
		
		private String code;
		private String name;

		private ORDER_PAY_TYPE(String code, String name) {
			this.code = code;
			this.name = name;
		}

		public String getCode() {
			return code;
		}

		public void setCode(String code) {
			this.code = code;
		}

		public String getName() {
			return name;
		}

		public void setName(String name) {
			this.name = name;
		}

	}
	
	/**
	 * 订单付款模式
	 * @author llp
	 */
	public enum ORDER_PAY_MODEL {
		PAY_NOW("01", "立即付款"), 
		PAY_DELIVERY("02", "货到付款");
		
		private String code;
		private String name;

		private ORDER_PAY_MODEL(String code, String name) {
			this.code = code;
			this.name = name;
		}

		public String getCode() {
			return code;
		}

		public void setCode(String code) {
			this.code = code;
		}

		public String getName() {
			return name;
		}

		public void setName(String name) {
			this.name = name;
		}

	}
	
	
	/**
	 *  订单渠道来源
	 */
	public enum ORDER_CHANNEL {
		PC("1", "PC端订单"), 
		WX("2", "微信订单");
		
		private String code;
		private String name;

		private ORDER_CHANNEL(String code, String name) {
			this.code = code;
			this.name = name;
		}

		public String getCode() {
			return code;
		}

		public void setCode(String code) {
			this.code = code;
		}

		public String getName() {
			return name;
		}

		public void setName(String name) {
			this.name = name;
		}

	}
	
	/**
	 *  订单状态
	 */
	public enum ORDER_STATUS {
		WAIT_TO_PAY("01", "待付款"), 
		WAIT_TO_APPROVE("02", "待审核"), 
		APPROVE_REJECTED("03", "审核驳回"), 
		WAIT_TO_SEND("04", "待发货"), 
		WAIT_TO_RECEIVE("05", "待收货"), 
		CANCELED("06", "已取消"), 
		FINISHED("07", "已完成"),
		WAIT_TO_CHECK("08", "待核销"),
		WAIT_TO_UPLOAD_CONTRACT("09", "待上传合同");
		
		private String code;
		private String name;

		private ORDER_STATUS(String code, String name) {
			this.code = code;
			this.name = name;
		}

		public String getCode() {
			return code;
		}

		public void setCode(String code) {
			this.code = code;
		}

		public String getName() {
			return name;
		}

		public void setName(String name) {
			this.name = name;
		}

	}
	
	/**
	 * 订单审核状态
	 * @author llp
	 */
	public enum ORDER_APPROVE_STATUS {
		PASS("01", "通过"), 
		NOT_PASS("02", "未通过");
		
		private String code;
		private String name;

		private ORDER_APPROVE_STATUS(String code, String name) {
			this.code = code;
			this.name = name;
		}

		public String getCode() {
			return code;
		}

		public void setCode(String code) {
			this.code = code;
		}

		public String getName() {
			return name;
		}

		public void setName(String name) {
			this.name = name;
		}

	}
	
	
	/**
	 * 发货单签收状态
	 * @author llp
	 */
	public enum ORDER_SIGN_STATUS {
		NOT_SIGN("01", "未签收"), 
		SIGNED("02", "已签收");
		
		private String code;
		private String name;

		private ORDER_SIGN_STATUS(String code, String name) {
			this.code = code;
			this.name = name;
		}

		public String getCode() {
			return code;
		}

		public void setCode(String code) {
			this.code = code;
		}

		public String getName() {
			return name;
		}

		public void setName(String name) {
			this.name = name;
		}

	}
	
	/**
	 * 订单开票类型
	 * @author llp
	 */
	public enum ORDER_INVOICE_TYPE {
		NO("01", "不开票"), 
		NORMAL("02", "普通发票"),
		ADDED("03", "增值税发票");
		
		private String code;
		private String name;

		private ORDER_INVOICE_TYPE(String code, String name) {
			this.code = code;
			this.name = name;
		}

		public String getCode() {
			return code;
		}

		public void setCode(String code) {
			this.code = code;
		}

		public String getName() {
			return name;
		}

		public void setName(String name) {
			this.name = name;
		}

	}
	
	
	/**
	 * 订单合同确认状态状态
	 * @author llp
	 */
	public enum ORDER_CONTRACT_STATUS {
		NOT_CONFIRM("01", "合同待确认"), 
		CONFIRMED("02", "合同已确认"),
		CONFIRMED_NOT_PASS("03", "合同已确认未通过");
		
		private String code;
		private String name;

		private ORDER_CONTRACT_STATUS(String code, String name) {
			this.code = code;
			this.name = name;
		}

		public String getCode() {
			return code;
		}

		public void setCode(String code) {
			this.code = code;
		}

		public String getName() {
			return name;
		}

		public void setName(String name) {
			this.name = name;
		}

	}
	
	/**
	 * 订单付款确认状态
	 * @author llp
	 */
	public enum ORDER_PAY_CONFIRM_STATUS {
		NOT_CONFIRM("01", "支付凭证待确认"), 
		CONFIRMED("02", "支付凭证已确认"),
		CONFIRMED_NOT_PASS("03", "支付凭证已确认未通过");
		
		private String code;
		private String name;

		private ORDER_PAY_CONFIRM_STATUS(String code, String name) {
			this.code = code;
			this.name = name;
		}

		public String getCode() {
			return code;
		}

		public void setCode(String code) {
			this.code = code;
		}

		public String getName() {
			return name;
		}

		public void setName(String name) {
			this.name = name;
		}

	}
	
	/**
	 * 订单付款状态
	 * @author llp
	 */
	public enum ORDER_PAY_STATUS {
		NOT_PAY("01", "未支付"), 
		PAYED("02", "已支付");
		
		private String code;
		private String name;

		private ORDER_PAY_STATUS(String code, String name) {
			this.code = code;
			this.name = name;
		}

		public String getCode() {
			return code;
		}

		public void setCode(String code) {
			this.code = code;
		}

		public String getName() {
			return name;
		}

		public void setName(String name) {
			this.name = name;
		}

	}
	
	/**
	 * 积分 金额 兑换比例
	 */
	public static final BigDecimal POINT_TO_MONEY_EXCHANGE_RATIO = new BigDecimal(1);
}
